package com.hyc.Serializer;

import java.util.HashMap;
import java.util.Map;

public interface Serializer {
    //    把对象序列化成字节数组
    byte[] serialize(Object obj);

    /*
     *  将一个字节数组反序列化为一个Java对象
     * 如果用Java自带的类型 不用设置也可以得到对象
     * 如果有指定消息格式 就根据messageType转化为消息对象
     * */
    Object deserializer(byte[] bytes, int messageType);

    int getType();

    // 定义静态常量 serializerMap
    static final Map<Integer, Serializer> serializerMap = new HashMap<>();

    static Serializer getSerializerByCode(int code) {
        // 静态映射，保证只初始化一次
        if (serializerMap.isEmpty()) {
            serializerMap.put(1, new JsonSerializer());
        }
        return serializerMap.get(code); // 如果不存在，则返回 null

    }
}
